package com.liveneo.stoat;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

public class GenerateWithJava {
	
	 @Test
	 public void testBuild() throws Exception {
		 System.out.println("开始生成 映射文件....");
		 // 信息缓存
		 List<String> warnings = new ArrayList<String>();
		 // 覆盖已有的重名文件
		 boolean overwrite = true;
		 // 准备 配置文件
		 File configFile = new File(getPath("src\\test\\resources\\generator.xml"));
		 // 1.创建 配置解析器
		 ConfigurationParser parser = new ConfigurationParser(warnings);
		 // 2.获取 配置信息
		 Configuration config = parser.parseConfiguration(configFile);
		 // 3.创建 默认命令解释调回器
		 DefaultShellCallback callback = new DefaultShellCallback(overwrite);
		 // 4.创建 mybatis的生成器
		 MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
		 // 5.执行，关闭生成器
		 myBatisGenerator.generate(null);
		 System.out.println("映射文件 生成....");
	 }
	 
	 public static String getPath(String appendPath){
			String path = System.getProperty("user.dir");
			if(StringUtils.isEmpty(appendPath)){
				return path;
			}else{
				return path+"\\"+appendPath;
			}
		}
	 
	 @Test
	public void testPath() throws Exception {
		System.out.println(getPath("src\\test\\resources\\generatorConfig.xml"));
	}
}
